A server is a computer program that provides a particular service to another computer program. A client is a computer program that uses the services of a server. Normally, a server program runs idle in a continuous loop awaiting requests from a client. At any time in this program loop, the server can be interrupted by a client request to perform a particular function.
Clients typically ask the server to perform tasks which the client cannot do. For example, a print server resides on a machine with a printer attachment and accepts requests from clients to print files on a printer. When the client wants to print a file, it sends the file to the server along with a request to print the file. The client may be a separate program running along with the server on a single computer or it may be a program running on an external computer which is somehow connected to the server computer.
Generally a server can accept requests to perform preprogrammed functions. That is, the server has a limited set of functions which are made available to a client through a language. The language can be as simple as a single command or as complex as a programming language. A client must communicate with a server in the language of the server. If the server understands the client's request, it satisfies the request by executing an appropriate portion of its own program. When a request, such as "Print" is received, a pre-determined previously linked function in the server is executed. Let's call this portion of the server's program an object.
An object must be written in a form which the computer can read or understand called object language. This object language is created from a programming language understood by humans by an apparatus called a compiler. In the prior art, before the server can perform a new function, a new object must be created or compiled from a programming language and combined with the server program, which itself has been compiled, through a process called linking. After all the portions of the server have been compiled and linked together, the server is ready for execution.
Other methods in the prior art use an interpreter in the server to interpret the client request. A client request in such a case is a program in a language which the server understands. The server interprets the client request by calling in sequence and, as specified by the client request, a set of predetermined functions. Using this method, a client can make a more complex request than by using the method above. However, this method has the disadvantages of limiting the client request to a set of functions or capabilities programmed into the server. The Adobe PostScript printer server is an example. (PostScript is a trademark of the Adobe computer company.) The server is given a client request in the form of a program called a PostScript file. The PostScript file contains commands along with non-command text. The command text is interpreted by the server in order to control the formatting and printing of the non-command text.